# /////////////////////////////////////////////////////////////////////////// # FONCTIONS DONNEES # /////////////////////////////////////////////////////////////////////////// def recupere_donnees_fichier_csv(nom_fichier): """ Fonction qui récupère les données relevées du ballon sonde sans les en-têtes de la 1ère ligne """ altitudes = [] # Initialisation des listes de valeurs relevées temperatures = [] longitudes = [] latitudes = [] # Ouverture du fichier csv au format npm.csv en mode "read" contenu_fichier = open(nom_fichier, 'r') # Supprime la 1ère ligne avec les en-têtes contenu_fichier.readline() # Parcours des lignes du fichier csv contenant les donnees relevées for ligne in contenu_fichier.readlines(): # rstrip() supprime les \n et espaces en fin de ligne ligne = ligne.rstrip() # création d'une listeValeurs. split(";") sépare les valeurs grâce au ; listeValeurs = ligne.split(";") # conversion string en int de l'altitude et insertion dans la liste correspondante altitudes.append(int(listeValeurs[0])) # conversion string en float de l'altitude et insertion dans la liste correspondante temperatures.append(float(listeValeurs[1])) # conversion string en float de l'altitude et insertion dans la liste correspondante longitudes.append(float(listeValeurs[2])) # conversion string en float de l'altitude et insertion dans la liste correspondante latitudes.append(float(listeValeurs[3])) return altitudes, temperatures, longitudes, latitudes def genere_kml(liste_longitudes, liste_latitudes): """ Fonction qui génère un fichier de données géographiques au format standard international KML Ce fichier est visionnable ensuite dans différents logiciels """ assert len(liste_longitudes) == len(liste_latitudes) #ajout fichier_kml = open( 'ballon sonde.kml', 'w') # Création et ouverture du fichier kml en mode "write" entete_fichier = '\n' entete_fichier += '\n' entete_fichier += '\n' entete_fichier += 'Trajectoire ballon sonde\n' # Ecriture du contenu de la variable entete_fichier dans le fichier kml fichier_kml.write(entete_fichier) for i in range(len(liste_longitudes)): corps_fichier = '\n' corps_fichier += f'Point {i}\n' corps_fichier += '\n' corps_fichier += f'{liste_longitudes[i]},{liste_latitudes[i]}\n' corps_fichier += '\n' corps_fichier += '\n' fichier_kml.write(corps_fichier) bas_fichier = '\n' bas_fichier += '\n' # ajout question 5 fichier_kml.write(bas_fichier) fichier_kml.close() # Fermeture du fichier kml # /////////////////////////////////////////////////////////////////////////// # TRAVAIL DEMANDE # /////////////////////////////////////////////////////////////////////////// # QUESTION 1 altitudes, temperatures, longitudes, latitudes = recupere_donnees_fichier_csv("releves_ballon_sonde.csv") # QUESTION 2 def conversion_K_en_C(liste_temperatures): temperatures_C = [] for temp in liste_temperatures: temperatures_C.append(round(temp - 273.15, 1)) return temperatures_C # QUESTION 3 def altitude_la_plus_froide(liste_altitudes, liste_temperatures): temperature_min = min(liste_temperatures) altitudes_min = [] for i in range(len(liste_temperatures)): if liste_temperatures[i] == temperature_min: altitudes_min.append(liste_altitudes[i]) return temperature_min, altitudes_min altitudes = [7000, 10125, 13896, 14211] temperatures = [-35.2, -52.1, -57.4, -57.4] assert altitude_la_plus_froide(altitudes,temperatures)==(-57.4, [13896, 14211]) genere_kml(longitudes, latitudes)